﻿using System;
using System.Diagnostics.Contracts;
using Adalbertus.BudgetPlanner.Domain;
using Adalbertus.BudgetPlanner.Services.CodeContracts;

namespace Adalbertus.BudgetPlanner.Services
{
    [ContractClass(typeof(IBudgetServiceContract))]
    public interface IBudgetService : IBaseService<Budget>
    {
        Budget GenerateEmptyBudgetForNextMonth(DateTime contextDate);
        Budget GetBudgetByDate(DateTime budgetDate);

        Budget GetDraftedBudget();
    }
}
